STATES = {
    PackagingOverview: 20,
    PackagingDaily: 21
    /* Dodaj ostala stanja. */
};
var StateLoader = function() {
    var _self = this;
    _self.DEFAULT_STATE = STATES.PackagingOverview;
    _self.loadState = function(state) {
        /**
         * State je integer koji predstavlja kOd stanja. Za svaki slucaj parse:
         */
        state = parseInt(state);
        switch (state) {
            case STATES.PackagingOverview :
                _self.loadPackagingOverview();
                break;
            case STATES.PackagingDaily :
                _self.loadPackagingDaily();
                break;
            default: _self.loadEmpty();
                /* Dodaj ucitavanje ostalih stanja */
        }
    };
    _self.loadPackagingOverview = function() {
        /**
         * Ova funkcija prvo ucitava html stranu PackagingOverview.html
         * Kad zavrsi sa ucitavanjem poziva callback anonimnu funkciju.
         * Anonimna funkcija obradi sadrzaj PackagingOverview.html (konkretno, ovde 
         * poziva addLiquid() koja sluzi za dodavanje onog fixed/liquid ponasanja) i 
         * ucitava ostale delove. Za sve ostale delove je ista prica. 
         * Tako za PackagingOverviewTable biva pozvana funkcija addScroll() da bi 
         * joj dodala scroll funkcionalnost. 
         */
        $("#states_holder").load("_parts/PackagingOverview.html", function() {
            $("#packagingOverview").addLiquid();
            $("#packagingOverviewForm_holder").load("_parts/PackagingOverviewForm.html", function() {
                $("#packagingOverviewForm").addLiquid();
            });
            $("#packagingOverviewTable_holder").load("_parts/PackagingOverviewTable.html", function() {
                $("#packagingOverviewTable").addScroll();
            });
            $("#timeFilter_holder").load("_parts/TimeFilter.html");
        });
    };
    _self.loadPackagingDaily = function() {
        $("#states_holder").load("_parts/PackagingDaily.html", function() {
            //not implemented
        });
    };
    _self.loadEmpty = function() {
        $("#states_holder").load("_parts/Empty.html", function() {
            //delete this, it is useless
        });
    };
    /* Dodaj ostale load funkcije po uzoru na loadPackagingOverview()*/
    _self.init = function() {
        /** Prvo se ucitaju header i menu: */
        $("#upperStaticParts_holder").load("_parts/staticParts/upper.html");
        /** zatim default stanje */
        _self.loadState(_self.DEFAULT_STATE);
    };
    return this;
};